home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-08-16 | 58.3 KB | 1,223 lines |
- @make(text)
- @style<Justification On, Hyphenation On, WidestBlank 1.4,Indent 2>
- @case[device,
- postscript="@style<spacing 1.2,spread 0.8,fontfamily NewCenturySchoolbook>",
- x9700="@style<fontfamily univers10,spacing 1,spread 1>
- @modify<example,facecode U>"
- ]
- @modify<example,above 1,below 1,group,leftmargin 0,rightmargin 0>
- @modify<subheading,above 2,below 1,need 6>
- @begin(center)
- @begin(majorheading)
- EVALUATING RS-232 COMMUNICATION PACKAGES
- @end(majorheading)
- @blankspace(0.5)
- Frank da Cruz,@ @ Christine Gianone
- @blankspace(0.5)
- Columbia University Center for Computing Activities
- New York, N.Y. 10027
-
- @i<December 1987>@foot(This is the original manuscript
- of the article that was published in Data Communications Magazine as "Shopping
- for Software That Lets PCs Chat With Mainframes", December 1987, pp.155-170.)
- @end(center)
- @blankspace(0.5inch)
- In most places where there are computers, nobody questions the need for data
- communication. The question is more likely to be how best to do it. In
- theory networks can do the job, typically PC LANs, perhaps interconnected by
- gateways to mainframe networks. But this arrangement presumes that
- equipment was purchased according to some consistent plan, with networking
- in mind. In practice, most organizations have a patchwork history of
- computer acquisition, resulting in a hodgepodge of PCs, minis, and
- mainframes for which compatible networking options are not available or
- affordable. Often, the only device these systems share in common is the
- humble RS-232 asynchronous communication port. Even when comprehensive
- networking solutions exist, the cost of attaching hundreds or thousands of
- PCs, at $500-$1500 per PC, to a Token Ring or Ethernet can be daunting. And
- those who want to dial in from home, or dial out to external services, must
- still be accommodated.
-
- For these reasons, many organizations choose to connect PCs to their
- networks through use of RS-232 communication packages like Crosstalk, Blast,
- Relay Gold, Smartcomm, VTERM, Kermit, PC-Talk, ProComm, Red Ryder,
- HyperACCESS, or ASCII Pro. Hundreds of these products permeate the
- marketplace, and, if selected intelligently, they can fill the gaps in an
- organization's network effectively and inexpensively. The cost for
- PC-resident data communication programs typically ranges from $20 to $500
- per PC, with some exceptions (some are free, others cost more). And that
- makes these programs more affordable than most PC network connections.
-
- Evaluating RS-232 communication packages can be a complicated process. The
- Cost must be weighed carefully against the needs of your organization.
- Reviews and surveys of communication packages appear frequently in the
- popular computer publications, and they can help. But surveys consisting
- mostly of charts in which, say, 100 popular software packages are compared
- on the basis of, say, 20 arbitrarily chosen features, are necessarily
- superficial. And many articles concentrate on frills and conveniences while
- giving short shrift to central issues like connection establishment and
- maintenance, terminal emulation, and file transfer. In this article we
- attempt to present the features of RS-232 communication packages in a way
- that will help you to assess their relative importance for yourself or your
- organization.
-
- @subheading<WHAT IS AN RS-232 COMMUNICATION PACKAGE?>
-
- RS-232 communication packages are software programs that run on personal
- computers like the IBM PC, IBM clone, Apple II, or Macintosh, and
- communicate asynchronously with remote computers through RS-232-C serial
- ports, either directly or through modems. This distinguishes them from
- specialized products that emulate synchronous terminals in IBM mainframe,
- Wang, or similar environments, for which special adapters (like an Irma
- board) and connections (like coax) are required, and which won't be
- discussed here.
-
- There are two fundamental aspects to any PC communication package. One is
- terminal emulation, which allows you to connect your PC to a mini or
- mainframe as a terminal in order to conduct a timesharing session or to
- access an application on a central, shared system. The other is data
- transfer, which lets you exchange information between your PC and a mini or
- mainframe (or another PC). For terminal emulation, PC-resident software is
- the only requirement. For error-free data transfer, however, a companion
- program is required on the other computer. The cost for commercial mini- or
- mainframe-based communication programs runs much higher than PC versions,
- typically ranging from $1000 to $100,000 (again, with exceptions).
-
- @subheading<USER INTERFACE>
-
- The most immediately striking aspect of any program is the "user interface":
- the prompts, commands, menus, function keys, etc, with which you make your
- wishes known to the program, and the displays with which it makes the
- results known to you.
-
- There are many styles of user interface: command line, interactive prompt
- and command, menus and arrow keys, mice and windows. The fundamental
- tradeoff is ease of learning versus ease of use. Ease of learning is
- important if many people will be using the package infrequently or if there
- is rapid personnel turnover, so that relatively little time need be "wasted"
- in learning and training. A user interface designed for ease of learning
- presents you with all the choices in menus. The penalty is that you are
- always presented with menus for everything, which slows you down needlessly
- once you have become expert. At the other extreme are programs that favor
- the expert, providing only terse and cryptic commands, sometimes with no way
- for a novice to get help at all, short of reading the manual. A compromise,
- "menu on demand", lets the expert issue rapid, terse commands, while still
- allowing the novice to see a menu at any point by entering a special help
- key.
-
- There is an oft-neglected aspect of the user interface that falls into the
- "ease of use" category: can the package be used by people with disabilities
- like motor impairment, blindess, or deafness? If you can depress only a
- single key at a time, how can you enter complicated Ctrl-Alt-Shift key
- combinations? If your PC is connected to an ASCII-oriented speaking device
- or a Braille terminal, how can you decipher multicolor animated graphics
- screens? If you can't hear, how do you know when the package is beeping or
- whistling at you to signal some important event? Often, the fancier the
- user interface, the less it lends itself to use by the disabled.
-
- Another item of minor importance, but whose absence can be a nuisance, is
- the ability to access system functions without actually leaving the program.
- If you want to change directories, list files, display a file, or delete a
- file, you should not have to exit the communication program, and then
- restart it afterwards. This can be time consuming, especially on
- floppy-disk-based systems, and even more so when settings -- or the
- connection itself -- must be reestablished.
-
- Commercial communication packages tend to place great emphasis on the
- appearance and style of the user interface, primarily for marketing reasons.
- But for most people, the user interface should not be a key factor in
- evaluating a product. It only lets you specify the real work to be done,
- and it should take up a relatively small proportion of the total time you
- spend with the package. Ultimately, it is much more important to know
- whether the product can perform the required tasks, and how well.
-
- CONNECTION ESTABLISHMENT AND MAINTENANCE
-
- Perhaps the most important aspect of any communication package its set of
- mechanisms for establishing a connection, matching communication parameters
- to the communication medium and the system on the other end, monitoring the
- connection once established, and breaking the connection.
-
- @subheading<COMMUNICATION PARAMETER SETTINGS>
-
- Any communication program should allow you control over communication
- parameters like bits per second, parity, duplex, flow control, and the
- number of data, start and stop bits per character. Each of these parameters
- is important, and the lack of any particular option may prevent you from
- communicating satisfactorily with another computer. Before you select a
- communication package, you should be sure it supports all the communication
- parameters and settings required by all the computers you need to
- communicate with.
-
- For example, most DEC minis and mainframes employ XON/XOFF full duplex flow
- control to prevent data overruns; if your PC communication package does not
- support XON/XOFF, then data transferred between it and the DEC system could
- be lost. IBM mainframe ASCII TTY linemode connections, on the other hand,
- are half duplex and exercise a line turnaround handshake discipline: if you
- transmit to the IBM mainframe before it has given you permission (by sending
- a special "handshake" character, such as Control-Q), it will not accept your
- data. Certain popular mainframes and minis, as well as public data networks
- like Telenet and Tymnet, use even, odd, or mark parity, and will not
- recognize your characters unless the right parity is applied. And if your
- package cannot distinguish parity bits from data bits, the wrong characters
- will be displayed on your screen. Table 1 shows typical RS-232
- communication parameters for various systems.
-
- @begin(example)
- ______________________________________________________________________________
-
- Computer Front End Duplex Flow Control Parity Terminal
- --------------- --------- ------ ------------ ------ --------
- Data General MV None Full XON/XOFF None Dasher
- DEC PDP-11 None Full XON/XOFF None VT52,VT100
- DEC VAX None Full XON/XOFF None VT52,VT100
- DECSYSTEM-20 PDP-11 Full XON/XOFF Even VT52,VT100
- Honeywell DPS8 DN335 Half XON Handshake None VIP7300,7800
- HP-1000 None Full ENQ/ACK None HP262x
- HP-3000 None Half XON Handshake None HP262x
- IBM 370 Series 3705 TTY Half XON Handshake Mark TTY
- IBM 370 Series 7171 P.E. Full XON/XOFF Even Various*
- Prime minis None Full XON/XOFF Mark TTY, PS300
-
- P.E. = 3270 Protocol Emulator, TTY = ASCII Linemode Connection.
- *Delivered with support for 13 popular terminals, configurable for more.
-
- Table 1: Typical Communication Parameters
- ______________________________________________________________________________
- @end(example)
-
- Some communication packages support only a limited range of transmission
- speeds. For instance, they may be designed to work only for dialup
- connections at speeds up to 1200 or 2400 bits per second (bps). If you
- should ever need to connect two computers directly, you should not be
- artificially limited to such low speeds. Even if dialups are the only
- connections you will ever make, you should be aware that new modems are
- appearing on the market that operate at speeds in excess of 9600 bps on
- ordinary voice-grade phone connections. For these reasons, any
- communication package should be able to operate at 9600 bps or higher. 9600
- bps is the highest speed supported by most minis, mainframes, and front ends
- today (some support 19,200 bps). Micros like the IBM PC/AT and the
- Macintosh, however, can drive their RS-232 ports to speeds of 38,400 bps or
- higher, and two such PCs connected back to back can actually transfer data
- at these speeds. But the higher the speed, the more important it is to have
- an effective flow control mechanism supported by the systems on each end of the
- connection.
-
- @subheading<MODEM CONTROL>
-
- Unless your computers are hardwired together with dedicated lines, you
- probably use asynchronous dialup modems to establish connections with other
- systems. Modems communicate special control information with the PC via
- RS-232 modem signals like DTR, DSR, and CD (see Table 2). Most
- communication packages can control and monitor these signals to detect when
- the connection is broken, or to break the connection and hang up the phone.
- If you use your package interactively, modem control is largely superfluous
- because you will notice when the connection is broken, or you will hang up
- the phone yourself when you are done with it. For unattended operation, on
- the other hand, modem control is important in avoiding the excessive phone
- bills that could result when the communication package does not notice that
- connections break and leaves the phone off hook all night.
-
- @begin(example)
- ______________________________________________________________________________
-
- FG Frame Ground
- TD Transmitted Data, from PC to modem
- RD Received Data, from modem to PC
- RTS Request To Send, from PC to modem, used with half duplex modems
- CTS Clear To Send, from modem to PC, ditto
- SG Signal Ground
- DSR Data Set Ready, indicates modem is in data transmission mode
- CD Carrier Detect, indicates that modem is connected to other modem
- DTR Data Terminal Ready, tells modem that PC is ready to communicate
- RI Ring Indicator, tells PC that the phone is ringing
-
- Table 2: RS-232-C Asynchronous Modem Signals
- ______________________________________________________________________________
- @end(example)
-
- Modems may be either external or internal. External modems are controlled
- in a consistent way according to RS-232-C, and rarely pose a problem to
- communications software. Although generally more expensive, external modems
- are interchangeable between different computers. Internal modems, on the
- other hand, are built specifically for certain computers, and sometimes
- require special handling by the software. A particular software package
- will not necessarily operate correctly with a specific internal modem (check
- with the software vendor!). And, of course, two modems that are to
- communicate must support the same modulation techniques and speeds.
-
- Some packages are designed to be used only with modems, and don't work
- properly when two computers are connected directly by a cable, unless
- certain modem signals are "faked" by cross-connections or jumper wires
- within the cable connectors. Such a fakeout cable is called a "null modem"
- or "modem eliminator" (Figure 1), readily available from any computer supply
- house, and also available as an adapter that you can connect to your modem
- cable. But different systems may require different signals connected in
- different ways, so be prepared for some experimentation (a breakout box will
- help). Your communication software package can relieve you of the tinkering
- if it can be configured to ignore modem signals altogether when you connect
- two computers directly.
-
- @begin(example)
- ______________________________________________________________________________
-
- True Null Modem Minimal Null Modem
- (8 wires) (4 wires)
-
- FG ----------- FG FG ----------- FG
-
- TD ----\ /---- TD TD ----\ /---- TD
- X X
- RD ----/ \---- RD RD ----/ \---- RD
-
- RTS ----\ /---- RTS RTS -+ +- RTS
- X | |
- CTS ----/ \---- CTS CTS -+ +- CTS
-
- DSR -+ +- DSR DSR -+ +- DSR
- | | | |
- CD -+--\ /--+- CD CD -+ +- CD
- X | |
- DTR -+--/ \--+- DTR DTR -+ +- DTR
- | | | |
- RI -+ +- RI RI -+ +- RI
-
- SG ----------- SG SG ----------- SG
-
- Figure 1: Null Modems
- ______________________________________________________________________________
- @end(example)
-
- @subheading<DIALER CONTROL>
-
- Many PCs are connected to the outside world only by telephone. "Smart
- modems", like those manufactured by Hayes, are able to dial the phone for
- you if they receive commands in the right format from the PC. This means
- that your communication package must understand the dialing language of the
- modem. Although the Hayes "AT" language has become a de-facto standard, not
- all autodial modems conform to it (prominent counterexamples include DEC
- DF-series modems, and selected models from Racal-Vadic, US Robotics, and
- Ventel). Be sure your modem's dialing language is supported by your
- communication package.
-
- Dialing software simplifies connection establishment, hiding the details of
- the dialing language from you. You tell the program what number to call,
- and let the software handle the details. Some packages go a step further
- and include a phone directory so that you don't even have to remember phone
- numbers, just the names of the places you want to call.
-
- Dialer control and phone directories fall into the frill category for most
- users. It's not much more trouble to type "ATDT7654321" than it is to type
- "dial fred". For unattended operation, however, automatic dialing is an
- essential feature. If a dial command is lacking, then the same function can
- be performed by a script, described below.
-
- @subheading<DEBUGGING COMMUNICATION PARAMETERS>
-
- Often, we can only guess what the right combination of speed, stop bits,
- parity bits, data bits, duplex, and flow control might be for a particular
- connection. What if we guess wrong? What tools does the communication
- package give us to pin down the offending parameters?
-
- Obviously, if the package lets us set these parameters independently, we can
- vary them until the connection works, but the combinations could be endless.
- Your communication package should include debugging tools to reduce the
- guesswork, like special display or logging of received characters,
- preferably including their 8-bit numeric values. If examination of the log
- reveals a byte with a numeric value of 193 (= 11000001 binary) where you
- would expect an ASCII "A" (= 01000001 binary), then you probably should be
- looking for 7 data bits with odd or mark parity rather than 8 data bits with
- no parity.
-
- A good communication package will also include a troubleshooting guide, like
- the one in Table 3, in which you can look up symptoms and find the
- corresponding diagnoses and prescriptions.
-
- @begin(example)
- ______________________________________________________________________________
-
- SYMPTOM POSSIBLE CAUSE CURE
-
- Blank, dark screen. PC turned off. Turn on PC.
-
- Total garbage on screen. Wrong speed. Try another speed.
-
- Spurts of garbage on screen. Noise. Hang up and redial.
-
- Uniform mixture of good and Parity. Select a different
- bad characters on screen. parity.
-
- Typed characters appear twice. Duplex. Select full duplex.
-
- Typed characters don't appear. Duplex. Select half duplex.
-
- Random gaps in screen text. No flow control. Use flow control,
- or a slower speed.
-
- Table 3: Sample Entries from a Troubleshooting Guide
- ______________________________________________________________________________
- @end(example)
-
- @subheading<SAVING COMMUNICATION PARAMETERS>
-
- Once you have discovered the proper settings for communicating with a
- particular machine, you will want to have some way of saving them. To
- alleviate the tedium of setting five or ten communication parameters each
- time you connect to a given system, the package should allow settings to be
- collected together into "configurations" which may be saved under mnemonic
- names.
-
- Some packages are delivered with a set of configurations for popular dialup
- services like Dow-Jones, Compuserve, MCI Mail, The Source, etc. These
- built-in configurations shield you from having to know anything about data
- communication parameters. But when you must establish a connection to a
- system the package doesn't know about -- like from your PC at home to the
- mainframe at work -- you should be able to manipulate the communication
- settings yourself and save them for future use. Once you've determined the
- appropriate settings for, say, your company's DEC VAX, IBM 3090, Harris 800,
- plus your local Telenet PAD, you only need mention the associated
- configuration name to set all the corresponding parameters at once.
-
- @subheading<SCRIPT LANGUAGE, UNATTENDED OPERATION>
-
- Just as a communication package may remember your communication settings or
- phone numbers for you, it can also allow repetitive interactive tasks, like
- login sequences, to be automated by means of "scripts". Scripts are little
- "programs" that look for specific outputs from the remote computer and
- provide appropriate responses. When the package, or the underlying system,
- allows a script to be executed at a predesignated time, then it is possible
- to carry on a canned dialog with no human operator present. For instance,
- you might program your PC to "wake up" at midnight, set the proper
- communication parameters and dial up your office mini, log in, deposit the
- day's transactions, fetch and print the day's mail, log out, and hang up.
- Script languages vary from the primitive and cryptic to full-blown
- programming languages complete with variables and conditional branching.
- Figure 2 shows a simple script for dialing a Hayes modem to establish a
- connection to a Unix system and then logging in. It illustrates how a
- script can be used in place of built-in dialer control.
-
- @begin(example)
- ______________________________________________________________________________
-
- set speed 1200 Bits per second
- set parity none Parity
- output AT\13 Wake up the modem
- input OK Look for its "OK"
- output ATD7654321\13 Give modem's dialing command
- input CONNECT Look for desired response
- pause 1 Wait a second
- output \13 Send a carriage return
- input login: Look for login prompt
- output chris\13 Send user ID, followed by carriage return
- input Password: Look for password prompt
- echo Connecting to Unix System...
- echo Please type your password:
- connect Let the user take over
-
- Figure 2: Script Language Example
-
- ______________________________________________________________________________
- @end(example)
-
- The "output" commands send the indicated text strings to the Unix system
- ("\13" is a code for carriage return), and the "input" commands search the
- incoming data for the indicated strings. If any of the input commands fail,
- the script is automatically terminated. This is an important feature of a
- script language. Suppose, for instance, you have a nightly script which
- sends your day's work to a mainframe and then deletes it from the PC's hard
- disk. If the data could not be successfully transmitted, then you certainly
- don't want the script to forge ahead stubbornly and destroy all your work.
-
- Scripts are essential for unattended operation, and they are also useful in
- setting up procedures for relatively unskilled operators such as data entry
- clerks. For the typical interactive user, however, scripts are a minor
- convenience rather than a necessity.
-
- @subheading<TERMINAL EMULATION>
-
- The PC has increasingly replaced the terminal in many organizations. In
- addition to its other capabilities, a properly programmed PC can also act
- like ("emulate") a terminal, so that you can use it to conduct a dialog with
- a remote computer. Your keystrokes are sent out the communication port, and
- characters that arrive at the port are displayed on the screen. On half
- duplex, local echo connections, your keystrokes are also displayed on the
- screen. On full duplex connections, terminal emulation can be a tricky
- business because characters may arrive at the port at the same time that you
- are typing; communication programs vary in their ability to handle both
- events at once, especially at higher speeds.
-
- It should be stressed that terminal emulation does NOT provide any sort of
- automatic error control, any more than a real terminal would. Bare
- characters are sent back and forth with absolutely no error recovery
- mechanism. If a package claims to supply error-checking data transfer, you
- should understand that this claim applies to its file transfer functions and
- not to its terminal emulator. A noisy telephone line would probably leave
- garbage on your screen during terminal emulation even though files could be
- transferred successfully.
-
- In addition to sending and displaying characters, a terminal emulator also
- attempts to imitate the repertoire of special effects of some particular
- real ASCII video display terminal, such as the DEC VT100 series, the IBM
- 3101, the Televideo 920, the ADM3A, etc. This means that the program
- responds to screen control sequences sent by the host just as the real
- terminal would. For example, the ASCII sequence "ESC [ 5 ; 7 H" sent to a
- DEC VT100 positions the cursor at row 5, column 7; "ESC [ 0 J" clears the
- screen, and so a PC programmed to emulate a VT100 would understand the same
- sequences and perform the same actions. When emulating a terminal, the
- package should also provide some mapping between the terminal's function
- keys and the PC's, so that they transmit the same sequences. If the VT100
- PF1 key sends "ESC O P", then the IBM PC's F1 key might be programmed to
- send the same sequence.
-
- Today's video display terminals possess a formidable array of features for
- tabbing, highlighting, partitioning the screen, erasing and inserting text,
- positioning the cursor, drawing figures, changing colors, switching
- character sets, activating printers, etc, all controlled by host-transmitted
- escape sequences. A package may emulate such a terminal completely, or it
- may emulate a "subset" of its functions. Some terminals have features that
- cannot be emulated by certain PCs. For example, the DEC VT100 allows
- switching between 80- and 132-column modes, but an IBM PC can only display
- 80 columns. To get 132 columns on a PC, a special board may be needed.
- Another example is the VT100's "smooth scrolling" feature, which allows a
- file to glide slowly along the screen -- the DEC Rainbow can do this, while
- the IBM PC cannot.
-
- Emulation should be complete enough to allow you to access any desired
- software on the host which expects to control the appearance of the
- terminal's screen; full-screen text editors like EDT on VAX/VMS or GNU EMACS
- on a UNIX system are good tests. Another is IBM 3270 protocol emulation as
- performed by the IBM 7171 or other protocol converter. If emulation is not
- complete, you will see fragmented and jumbled screens, characters or lines
- overwriting each other, mysterious gaps and transpositions.
-
- Terminal emulation is a very important function for people who engage in a
- lot of interactive dialog with a remote system, especially when screen
- control is involved. In this case, it is essential that the communication
- package be capable of emulating a terminal that the remote system supports,
- such as a DEC VT100 or -200 series with a DEC VAX/VMS system, a Data General
- Dasher with DG minis, etc. (see Table 1). Terminal emulation is less
- important for brief or non-interactive encounters, such as occasional
- sessions primarily for file transfer.
-
- @subheading<KEY REDEFINITION AND CHARACTER TRANSLATION>
-
- Since your PC keyboard may have a different layout than the emulated
- terminal, you may want to "move" the misplaced keys to their familiar
- locations (no, you can't use pliers for this). For instance, the Escape
- (ESC) key (important to much host-resident software) is notoriously mobile,
- appearing in many different locations even on PCs from the same maker (IBM
- and DEC spring to mind). If you're used to finding ESC immediately left of
- the "1", but your PC has "`" (accent grave) in that position, you could
- redefine "`" to transmit ESC (and vice versa). Similarly for function keys:
- the VT100 PF keys are on the right, whereas the IBM PC's F keys are on the
- left; some VT100 users may find it more convenient to assign the PF keys to
- the PC's numeric pad.
-
- A package might also allow you to assign any arbitrary character string to a
- key, so that you could transmit commonly typed items like your name or login
- sequence with a single keystroke. Such many-to-one assignments are called
- "keyboard macros", and there are limits to the number of characters which
- may be represented by a single key.
-
- Key redefinition is important if you switch frequently among terminals and
- PCs with different keyboard layouts; it means you don't have to retrain your
- fingers each time -- a blessing for touch typists. It is also helpful when
- switching the same PC between different hosts. If you are used to typing
- the Backspace key to erase a character, but one host uses ASCII Rubout for
- this function while another uses Control-H, you can assign the suitable
- character to the Backspace key.
-
- Like communication settings, key definitions might take you some time and
- experimentation to perfect. Once you have configured your keyboard
- satisfactorily, you should be able to save your definitions for future use.
-
- @subheading<CHARACTER SETS>
-
- The ability to handle European and non-Roman character sets (keyboard input
- as well as screen output) is important for those who deal in languages other
- than English. It is common practice in Germany and Scandanavia, for
- instance, to assign umlaut, slashed, or circled vowels to the ASCII bracket
- positions. PCs and host computers must agree upon these conventions in
- order for characters to be displayed as intended, rather than in
- Anglo-American ASCII. Translation of outbound and arriving characters is
- therefore an important function of the communication package. To be totally
- general, the package should not be restricted to 7-bit ASCII, but should
- allow for 8-bit international character sets, in line with ISO
- Recommendations 2022, 6937, et al.
-
- @subheading<TEXT SCREEN MEMORY>
-
- A special advantage of emulating a terminal on a PC is that the PC may
- surpass the capabilities of the terminal. The PC's memory may be used to
- hold hundreds of lines that have scrolled off the top for later recall.
- Current or previous screens may be dumped to a disk file or printer at the
- touch of a button.
-
- Screen print, dump, and rollback fall into the convenience category, and yet
- once you've become used to them, you wonder how you ever lived (or at least,
- worked) without them. How many times has some important message scrolled
- off your screen before you could read it? How many times have you typed
- hundreds of lines of text into a computer that crashes before you could save
- your work?
-
- @subheading<GRAPHICS>
-
- If your PC has a color monitor, your communication program should be able to
- set the fore- and background text screen colors. A well-chosen color scheme
- can reduce "operator fatigue" or, conversely, can jolt you awake during the
- less exciting hours of your day.
-
- In order to access graphics-oriented applications on your mainframe or mini
- such as SAS Graph, SPSS Graphics, Plot 10, TELL-A-GRAF, or various CAD
- packages (not to mention certain dialup shopping services), the
- communication package must emulate a graphics terminal or standard known to
- the application, such as Tektronix 4010, 4014 or other model, DEC ReGIS,
- HPGL, GKS, GDDM, NAPLPS, etc. Graphics terminal emulation is only found in
- a few communication packages, usually as an extra-cost item, and for certain
- PCs (like IBM) a special monitor and graphics board are also required.
-
- In recent years, graphics tend to be done directly on the PC by such
- packages as Lotus, Macpaint, etc. It is normally not possible to connect
- one PC to another in order to access the remote PC's graphics applications,
- though certain highly specialized packages do allow this. You cannot expect
- to run Crosstalk from PC A to PC B, and expect Lotus on PC B to put a color
- pie chart on PC A's screen. More commonly, the graphics package exists on
- both PCs and their data files are moved from one computer to another using a
- file transfer protocol built into the communication package.
-
- @subheading<FILE TRANSFER>
-
- "...transfers your data over phone lines at the speed of light!" was a
- claim that once appeared in an advertisement for a communication package.
- While it's true that electricity travels through wires at near light speed,
- it is not (yet) true that one electron is equivalent to one bit of data. In
- fact, at the most common speed used for dialup data communication, 1200 bits
- per second, a single bit is pretty big -- about 150 miles long! A character
- (generally represented in transmission by 10 bits) is 1500 miles long; two
- characters, like "OK", would span the American continent.
-
- Spurious advertising claims notwithstanding, transmission speed is a
- technological issue, but data transfer is a software issue: How to make
- effective use of the transmission medium? How to smooth over the
- differences between computers?
-
- There are also several specific areas to watch out for. Can binary files be
- transferred? Can text file formats be converted to useful form between
- unlike systems? Can a group of files be sent in a single operation? Can
- filename collisions be avoided? Can a file transfer be cleanly interrupted?
-
- @subheading<ASCII VS ERROR-CHECKED PROTOCOLS>
-
- Communication packages offer two basic types of data transfer: "raw" and
- error-checked. The most common "raw" method is usually billed as "ASCII
- protocol". This means that the data is sent as-is, as ASCII characters,
- from one computer's communication port to the other. The advantage is
- simplicity. No special software need be resident on the remote computer,
- beyond its text editor, or a "type" or "copy" command. The disadvantages,
- however, explain why error-checked protocols have evolved, and are worth
- noting. The data sent using the ASCII protocol will be corrupted if there
- is noise on the communication line. Data will be lost if the receiving
- computer can't keep up with the sender. Binary (non-textual) files
- generally cannot be transferred this way since many computers will ignore
- the "parity bit", or act upon control characters rather than accept them as
- data: Control-C, Control-S, and Control-Z are frequent culprits. And
- finally, this method works for only one file at a time.
-
- A refinement of ASCII protocol incorporates XON/XOFF or some other flow
- control method, to reduce the chances of data loss. In this case, both
- computers must support the same flow control method, but corruption of the
- data (including the flow control signals themselves) remains a problem, as
- does file delimitation and the restriction on binary files.
-
- If you want reliable, correct, and complete transmission of files between
- computers, then you can't trust the job to ASCII or XON/XOFF "protocol".
- You'll need a communications package that includes a true error-correcting
- file transfer protocol. Error-checked data transfer requires cooperating
- programs on each end of the connection to exchange messages, called packets,
- according to agreed upon formats and rules, similar to how we behave on the
- telephone: I dial, your phone rings, you pick up and say hello, I identify
- myself, we take turns talking and if I didn't understand what you said then
- I ask you to repeat (and vice versa), then we say goodbye, and then we hang
- up. And (an important point) we conduct the conversation in the same
- language. A file transfer protocol operates similarly: the two processes
- "connect" with each other, identify the files that are being transferred,
- request retransmission of lost or damaged packets, identify the end of the
- file, and then disengage from each other.
-
- By the way, the fact that many newer modems provide error correction does
- not eliminate the need for file transfer software. An error-free data
- stream from modem to modem does not guarantee correct data from computer to
- computer. Issues of end-to-end flow control and error correction, file
- delimitation, and format conversion must still be addressed within the
- computers themselves.
-
- @subheading<XMODEM AND KERMIT>
-
- Two well known error-checking file transfer protocols are Xmodem and Kermit.
- Many commercial packages include one or both of these protocols (sometimes
- alongside their own private, proprietary protocols), but there are also
- hundreds of public domain or freely sharable Kermit or Xmodem programs. In
- fact, the major advantage of Xmodem and Kermit is that they are ubiquitous.
- The protocol specifications are open and public, and large bodies of Kermit
- and Xmodem software are available. The cost to a large organization for
- these programs is minimal, compared with the per-CPU licensing fees required
- for commercial packages. Furthermore, chances are greater that a Kermit or
- Xmodem program will exist for any given computer.
-
- In the case of Kermit programs, source code is included, which encourages
- their adaptation to a wide range of systems. Non-commercial Kermits can be
- had for more than 250 different machines and operating systems, ranging in
- size from the smallest micro to the largest supercomputer, and Kermit is
- included (at no extra charge) in about 100 different commercial software
- packages. And, according to recent announcements from Telebit and AST,
- Kermit protocol is even beginning to find its way into silicon. Xmodem is
- also available for a wide variety of computers, but it was designed
- primarily for micro-to-micro links. It is most widely known by its
- commercial implementations, as a fixture in programs like Crosstalk.
-
- Kermit, Xmodem, and other error-checking protocols are not equivalent.
- Kermit won't talk to Xmodem, and vice-versa. Each must be evaluated
- according to several criteria: Is there a version of the protocol available
- for all the systems that must communicate? Can the protocol accommodate all
- the communications parameters required for the systems, and for the
- communication medium? Is the performance acceptable? Is the software
- affordable?
-
- Xmodem is more properly called the Christensen protocol after its designer,
- Ward Christensen, who originally intended it only for communication between
- CP/M micros. Ward put his original 1977 MODEM program into the public
- domain, and it was modified by others over the years, and some protocol
- features were added, resulting in protocol variants with names like MODEM2,
- MODEM7, XMODEM, YMODEM, ZMODEM, etc.
-
- The Kermit file transfer protocol was originally developed in 1981 at the
- Columbia University Center for Computing Activities for CP/M, MS-DOS, the
- DECSYSTEM-20, and IBM mainframes with VM/CMS; that is, for use in the
- micro-to-mainframe environment. It was shared freely with other
- institutions, with sources and documentation included. Everyone was, and
- is, permitted and encouraged to copy and share, to make improvements, and to
- contribute new versions.
-
- Kermit and Xmodem both transfer files between computers in blocks of data,
- or packets. Both protocols require a program running on each computer to
- compose, send, read, decipher, and act upon the packets. Each packet is
- error-checked through the use of calculated checksums, and retransmission is
- requested when packets have incorrect checksums. Deadlocks are broken by
- timeouts and retransmission. Missing or duplicate packets are caught using
- packet sequence numbers. Both protocols are half-duplex stop-and-wait: the
- next packet is not sent until the current packet is acknowledged. Kermit
- and Xmodem packets are illustrated in Figure 3.
-
- @begin(example)
- ______________________________________________________________________________
-
- Xmodem:
- +-------+-------+-------+------------------+-------+
- | SOH | BLOCK |-BLOCK | DATA (128 bytes) | CHECK |
- +-------+-------+-------+------------------+-------+
-
- All fields are 8-bit binary:
-
- SOH is ASCII Control-A (SOH, Start of Header).
- BLOCK is the 8-bit binary "block" (packet) number, 1-127 (recycles).
- -BLOCK is 255 minus the block number (1's complement of block number).
- DATA is exactly 128 bytes of unencoded 8-bit data (a CP/M disk block).
- CHECK is an 8-bit binary checksum.
-
- Kermit:
- +-------+-------+-------+-------+----------+-------+
- | START | LEN | SEQ | TYPE | DATA.... | CHECK | <cr>
- +-------+-------+-------+-------+----------+-------+
-
- Each Kermit packet field except DATA is a single character. Each field
- except START is composed only of printable ASCII characters. The packet is
- normally terminated by a carriage return.
-
- START is usually Control-A (SOH), but can be redefined.
- LEN is the packet length, 0-94, encoded as a printable ASCII character.
- SEQ is the packet sequence number, 0-63 (recycles), printable.
- TYPE is the packet type, S F D Z B Y N, etc.
- DATA is a file name, file data, etc, depending on TYPE, printable ASCII.
- CHECK is an 8-bit checksum, folded into 6 bits as a printable character.
-
- Figure 3: Xmodem and Kermit Packets
-
- ______________________________________________________________________________
- @end(example)
-
- The differences between Xmodem and Kermit are worth noting. First, Xmodem
- uses 8-bit binary bytes in its packet fields, and therefore requires an
- 8-bit transparent communication link. It cannot function, even for text
- files, when parity is in use. Similarly, when any device in the
- communication path is sensitive to control characters such as Control-Z or
- Control-S (which occur in the Xmodem packet control fields), Xmodem packets
- are subject to interference. For this reason, Xmodem cannot operate in
- conjunction with XON/XOFF or other in-band flow control. Kermit, on the
- other hand, encodes its packets as lines of text, and therefore does not
- have these restrictions.
-
- Second, Xmodem packets are sent only in one direction. The responses are
- bare unchecked control characters such as Control-F for acknowledgement,
- Control-U for negative acknowledgement, or Control-X for cancel. Corruption
- of Xmodem responses into other valid responses is possible, and can cause a
- file transfer to terminate prematurely. Kermit uses fully error-checked
- packets in both directions, and is therefore more robust in the face of
- transmission errors.
-
- Third, Xmodem uses fixed-length packets. There is no length field. If a
- file's length is not an exact multiple of 128 bytes, then extra bytes will
- be transmitted. Furthermore, if a computer, multiplexer, or other device
- cannot handle bursts of 132 characters, Xmodem packets will not get through.
- Kermit packets include a length field. Packets can be adjusted to
- accommodate small buffers, and a short packet can be sent at the end, so
- there is no confusion about the exact end of file.
-
- Fourth, Xmodem includes no mechanism for transmitting the file's name, and
- therefore has no way of sending multiple files in a single session. Kermit
- does this routinely.
-
- Fifth, Xmodem makes no distinction between text and binary files. But since
- the conventions for representing text files on different systems can vary,
- the results of an Xmodem text-file transfer between unlike systems can be
- surprising. Kermit specifies a common intermediate representation for text
- files during transmission, so that incoming text files can always be stored
- in a useful form. However, this places the burden on the user to select
- text or binary transfer mode.
-
- Finally, both the Xmodem and Kermit protocols have seen a number of
- extensions over the years. Xmodem has no formal or consistent way to
- negotiate the presence or absence of given features, whereas feature
- negotiation is built into the basic Kermit protocol. A pair of variant
- Xmodem programs will not necessarily be able to communicate, whereas any
- pair of Kermit programs will automatically fall back to the greatest common
- set of options. Xmodem and Kermit protocol extensions include:
-
- @begin(itemize)
-
- Multiple files. MODEM7 and YMODEM can transfer multiple files in a single
- batch, Xmodem can't. Multiple file transmission is built into the basic
- Kermit protocol.
-
- The ability to pass 8-bit data through a 7-bit channel. Xmodem can't.
- Kermit supplies this as a negotiated feature (commonly available).
-
- Alternate checksums. Xmodem-CRC uses a 16-bit cyclic redundancy check for
- greater reliability, and tries to adapt itself to 8-bit-checksum-only Xmodem
- programs automatically. Kermit supplies an optional 12-bit checksum, and
- a 16-bit CRC, negotiated with automatic fallback to the single character
- checksum.
-
- File transfer interruption. Both Xmodem and Kermit allow file transfer
- to be interrupted cleanly. Kermit also includes the ability to cancel the
- current file in a group and proceed to the next one.
-
- Compression. Kermit programs may negotiate compression of repeated bytes.
- Xmodem lacks a compression option.
-
- Long packets. YMODEM allows 1K-byte fixed-length packets for greater
- efficiency. Kermit extensions permit variable-length packets up to about
- 9K, negotiated with automatic fallback to regular-length packets.
-
- Sliding windows. Kermit programs may negotiate simultaneous and
- continuous transmission of packets and their acknowledgments on
- full-duplex links, with a window of up to 31 unacknowledged packets, and
- selective retransmission of lost or damaged packets. (This option is not
- yet widespread among Kermit implementations). Sliding windows are not
- possible in Xmodem because its responses carry no sequence number (an
- Xmodem variant called WMODEM simulates sliding windows, but only works if
- there are no errors).
-
- File attributes. YMODEM transmits a file's name, size, and creation date.
- Xmodem does not. Kermit always transmits the name, and the ability to
- communicate a wide range of other file attributes may be negotiated (but,
- like sliding windows, this is not yet a widely implemented Kermit feature).
-
- Checkpoint/restart. ZMODEM includes the ability to restart a file transfer
- after the connection was broken. Neither Xmodem nor Kermit have this
- ability.
- @end(itemize)
-
- Kermit also differs from Xmodem by including a "file server" mode of
- operation, in which the remote Kermit program receives all its instructions
- from the PC Kermit in packet form. This simplifies operation considerably.
- Kermit servers can transfer files, as well as perform a variety of file
- management functions -- deletion, directory listing, changing directories,
- etc.
-
- Implementations of Kermit can be had for most PCs, minis and mainframes.
- Xmodem implementations are found mostly on PCs, rarely on minis and
- mainframes. Basic Xmodem is somewhat more efficient than basic Kermit,
- because the packets are slightly longer and there is less encoding overhead.
- The situation is reversed when Kermit can do compression, long packets, or
- sliding windows.
-
- Most commercial RS-232 communication packages claim to include Xmodem,
- Kermit, or both. In general, the commercial Xmodem implementations include
- none of the MODEM7, YMODEM, or ZMODEM options, but often do include support
- for CRCs. Thus, they can transfer only a single file at a time, and only
- through transparent 8-bit communication channels. The commercial Kermit
- implementations vary from the bare-bones to the very advanced, but all can
- transfer text files through 7-bit links, and can handle multiple files in a
- single operation. It is not always apparent from vendor literature exactly
- which options are supported, so if any of these issues are important to you,
- you should call the vendor and ask about them. After all, one of the
- advantages of commercial offerings over public domain software is telephone
- support.
-
- @subheading<OTHER ASYNCHRONOUS PROTOCOLS>
-
- Xmodem and Kermit are not the only two asynchronous communication protocols
- in the marketplace. Others include UUCP, Blast, MNP, X.PC, Poly-Xfr, DX,
- Compuserve, FAST, and DART. Most of these protocols are proprietary, which
- means that the protocol specification itself is secret, or licensed, and
- they are found primarily in commercial packages. They often include
- advanced capabilities like checkpoint/restart, bidirectional file transfer,
- and sliding windows.
-
- But all proprietary protocols have the same drawbacks: you must buy
- commercial packages in order to use them, and if there is not a package
- available for a certain computer that you need it for, you're out of luck.
- Of the commercial packages, Blast probably comes closest to Kermit in
- covering a wide variety of systems, and exceeds Kermit in many design and
- performance areas. The drawback is the cost: $250 for the PC version, $450
- for a PDP-11 version, and more for larger minis or mainframes. And since
- the Blast protocol is inherently full duplex, a special "Blast box" front
- end must be purchased for half duplex systems. Kermit, on the other hand,
- may be used with either full or half duplex systems, and the cost is
- minimal.
-
- @subheading<SUMMARY>
-
- Here is a checkoff list that you can use to evaluate and compare
- communication packages. Before purchase, you should decide which features
- are important to you, and then determine which packages have these features.
- Check the vendor literature, or call the vendor directly.
- @newpage()
- @begin(example)
- ______________________________________________________________________________
-
- CONFIGURATION
-
- Make and model of your computer:______________________________________________
-
- Operating system and version:_________________________________________________
-
- Memory:___________(K) Floppy drives:_________ Hard Disk Capacity: _______(M)
-
- Communications interfaces:____________________________________________________
-
- Modem make and model:____________________________ [ ] Internal [ ] External
-
- Name of communications package:_______________________________________________
-
- Communications package vendor:_________________________ Phone:________________
-
- Package memory size:___________(K) Package disk occupancy:________________(K)
-
- Before proceeding, be sure that the communication package is compatible with
- your computer's configuration!
- @hinge()
- ______________________________________________________________________________
-
- COST
-
- (a) What is the unit cost of the package? $_____________
-
- (b) Is source code included, so that you can make changes
- and fix bugs? Is there is an additional charge for
- source code? Cost of source code, if you want it: $_____________
-
- (c) Is copying allowed? If so, go directly to (f).
-
- (d) How many PCs will you need it for? _____________
- Is there a volume discount? If so, enter discounted cost: $_____________
-
- (e) If a site license is available, what does it cost? $_____________
-
- (f) Enter best total price for PC versions . . . . . . . . . . $_____________
-
- (g) Do you also need minicomputer or mainframe versions?
- If so, enter total cost for mini or mainframe versions . . $_____________
- (Figured as above)
-
- (h) Total cost to your organization . . . . . . . . . . . . . $_____________
- @hinge()
- ______________________________________________________________________________
-
-
- DOCUMENTATION, TRAINING, AND SUPPORT
-
- Is the manual...
- [ ] thick and unmanagable?
- [ ] thin and cryptic?
- [ ] just right?
-
- How important is the manual?
- [ ] Must be consulted frequently
- [ ] Occasional lookups required
-
- [ ] Does the manual have a good index and table of contents?
-
- [ ] Is training available?
-
- [ ] Is training necessary?
-
- [ ] Is telephone support available and included in the package price?
- @hinge()
-
- ______________________________________________________________________________
-
-
- WHAT IS YOUR PRIMARY USE FOR THE PACKAGE?
-
- [ ] Long interactive remote sessions. Communication parameter settings,
- terminal emulation, and key definition are the most important features.
-
- [ ] Infrequent remote sessions mainly for the purpose of data transfer.
- Concentrate on the user interface, script language, and file transfer
- protocol.
- @hinge()
-
- ______________________________________________________________________________
-
-
- COMMUNICATIONS PACKAGE FEATURES
-
- Each of the features listed below should be evaluated according to your needs.
- The lack of a certain feature is not critical if you know you will never need
- that feature. Items may be rated as follows:
-
- X - I don't care about this feature.
- Y - I need this feature, and the package has it.
- N - I need this feature, but the package doesn't have it.
-
- A single "N" may be sufficient to disqualify the package, depending on how
- important the feature is to you. If you don't know whether the package
- provides a feature you need, call the vendor and ask.
- @hinge()
-
- ______________________________________________________________________________
-
-
- USER INTERFACE
-
- [ ] Is help available at all times?
-
- [ ] Does the user interface favor the novice user? (Menus at all times)
-
- [ ] Does it favor the expert user? (No menus)
-
- [ ] Is the package equally convenient for both novice and expert? (Menu on
- demand)
-
- [ ] Can canned procedures be set up for unskilled users? (Scripts, command
- files)
-
- [ ] Can local operating system functions be accessed without leaving the
- package?
-
- [ ] Can the package be used by the disabled?
- @hinge()
-
- ______________________________________________________________________________
-
-
- COMMUNICATION PARAMETER SETTINGS (always important)
-
- Bits/Second: 0,110,300,1200,2400,4800,9600,19200,etc. Maximum:__________
-
- Duplex
- [ ] Full (e.g. for DEC minis)
- [ ] Half (e.g. for IBM mainframes)
-
- Echo
- [ ] Remote (e.g. for DEC minis)
- [ ] Local (e.g. for IBM mainframe linemode connections)
-
- Data Bits
- [ ] 5 (Baudot)
- [ ] 7 (ASCII)
- [ ] 8 (national characters)
-
- Stop Bits
- [ ] 1 (for most connections)
- [ ] 1.5 (rarely used)
- [ ] 2 (used only for 110 bits per second or less)
-
- Parity Selection
- [ ] None (all bits used for data)
- [ ] Even (required by some mainframes, front ends, public networks, etc)
- [ ] Odd (ditto)
- [ ] Mark (ditto)
- [ ] Space (rarely used, but sometimes handy)
-
- Character Set Selection
- [ ] 5-bit Baudot (used in Telecommunication Devices for the Deaf)
- [ ] 7-bit US ASCII (most common in English-speaking countries)
- [ ] 7-bit "national ASCII" (Norwegian, German, etc)
- [ ] 8-bit "extended ASCII" (e.g. use of IBM PC 8-bit character set)
- [ ] Support for international standard non-Roman character sets
- [ ] User-definable or downloadable character sets
-
- Flow Control Selection
- [ ] X-on/X-off (e.g. with DEC computers)
- [ ] ENQ/ACK (e.g. with Hewlett-Packard computers)
- [ ] RTS/CTS (for half duplex modems)
- [ ] Half duplex line turnaround handshake (e.g. with IBM mainframes)
- [ ] Other:________________________________
- [ ] None (can flow control be turned off?)
-
- Debugging
- [ ] Special display of all received and transmitted characters
- [ ] Logging of all received and transmitted characters
-
- [ ] Can you collect communication settings into recallable configurations?
- @hinge()
-
- ______________________________________________________________________________
-
-
- CONNECTION ESTABLISHMENT
-
- Support for RS-232-C asynchronous modem signals (RTS, CTS, DSR, CD, DTR, RI):
-
- [ ] Does the package monitor Carrier Detect (CD) and Data Set Ready (DSR)
- from the modem?
- [ ] Does the package assert Data Terminal Ready (DTR)?
- [ ] Can the package drop DTR to hang up the phone?
- [ ] Does the package respond to Ring Indicator (RI) so that it can be called
- from outside?
- [ ] If you have a half duplex modem, does the package support RTS/CTS?
-
- [ ] Does your PC have an internal modem?
- [ ] Does the package support this internal modem?
-
- Dialer Control:
- [ ] Does your modem provide automatic dialing?
- [ ] What dialing language is used by your modem? ________________________
- [ ] Does the package support automatic dialing?
- [ ] Does the package support your modem's dialing language?
- [ ] Does the package provide a phone directory?
-
- [ ] Can the package operate over direct connections, without modems? That
- is, can it be told to ignore CD and DSR? (If not, you will need the
- "fakeout" (minimal) null-modem cable from Figure 1).
-
- Script language for automatic login, unattended operation:
- [ ] Access to all necessary package commands from script language.
- [ ] Conditional execution/termination of script commands.
- [ ] Fancy script programming features (variables, labels, goto's, etc.)
- [ ] Unattended operation (e.g. late at night, when phone rates are low).
-
- [ ] Can the program be suspended and resumed without dropping the connection?
- @hinge()
-
- ______________________________________________________________________________
-
-
- TERMINAL EMULATION:
-
- What terminal(s) does the package emulate? ___________________________________
-
- [ ] Is the maximum speed for full duplex terminal emulation sufficient for
- your needs?
-
- [ ] Does the package emulate a terminal that is supported by the computers
- you wish to communicate with?
-
- [ ] Is the terminal emulated fully enough for use with all desired software
- applications on these computers?
-
- [ ] Is any special hardware (like a 132-column board) required in the PC?
-
- [ ] Does the package support fore- and background colors?
- (Do you need them?)
-
- [ ] If a graphics terminal is emulated, does your application support it?
-
- [ ] Screen rollback (view screens that have scrolled away)
-
- [ ] Screen dump (save current or previous screens in PC files)
-
- [ ] Printer control (copy displayed characters to printer;print whole screen)
-
- [ ] Print or save text screens in alternate character sets
-
- [ ] Print or save graphics screens
-
- [ ] Function keys
-
- [ ] Key redefinition
-
- [ ] Keystroke macros
-
- [ ] Translation of displayed characters, alternate character sets
- @hinge()
-
- ______________________________________________________________________________
-
-
- FILE TRANSFER PROTOCOLS
-
- [ ] ASCII (this is not an error-correcting protocol)
-
- [ ] XON/XOFF (this is not an error-correcting protocol)
-
- [ ] Xmodem
-
- [ ] Kermit
-
- [ ] Proprietary (Blast, MNP, etc):____________________________________
-
- [ ] Other: ___________________________________________________________
-
- [ ] Do the systems you're communicating with support the same protocol(s)?
-
- [ ] Does the package transfer both text and binary files?
-
- [ ] Do text files arrive on the target computer in useful form?
- @hinge()
-
-
- XMODEM OPTIONAL FEATURES
-
- [ ] Modem7-style transfer of multiple files
-
- [ ] Xmodem-CRC for more reliable error checking
-
- [ ] Ymodem 1K packets for increased efficiency (half duplex)
-
- [ ] Ymodem filename transmission
-
- [ ] Checkpoint/restart (Zmodem)
-
- [ ] Wmodem continous transmission (full duplex)
-
- [ ] Do the computers you wish to communicate with support the same
- Xmodem options?
- @hinge()
-
-
- KERMIT OPTIONAL FEATURES
-
- [ ] 8-bit data through 7-bit links (e.g. links with parity)
-
- [ ] Repeated character compression for improved efficiency
-
- [ ] 12-bit checksum, 16-bit CRC, for more reliable error checking
-
- [ ] File transfer interruption
-
- [ ] Long packets (up to 9K) for improved efficiency (half duplex)
-
- [ ] Sliding windows for improved efficiency (full duplex)
-
- [ ] Transmission of file attributes
-
- [ ] Server operation
-
- [ ] Remote host commands and file management
-
- ______________________________________________________________________________
-
- @end(example)
-